package com.vhall.component.service.rbac;


import com.vhall.component.entity.rbac.vo.AccessListReqVO;
import com.vhall.component.entity.rbac.vo.AccessUserListReqVO;
import com.vhall.component.entity.rbac.vo.AccessVO;

import java.util.List;

/**
 * @author dalong
 * @date 2021-05-10 17:03
 */
public interface RbacAccessService {

    /**
     * 获取权限列表
     *
     * @param reqVO 请求参数
     * @return
     */
    List<AccessVO> list(AccessListReqVO reqVO);

    /**
     * 获取用户权限列表
     *
     * @param reqVO 请求参数
     * @return
     */
    List<Integer> userAccessList(AccessUserListReqVO reqVO);

    /**
     * 查询所有 访问控制权限
     *
     * @return
     */
    List<Integer> selectAllRules();

    /**
     * 初始化权限
     *
     * @return
     */
    Boolean add();

    /**
     * 按id查询权限
     *
     * @param id
     * @return
     */
    AccessVO getById(Integer id);

    /**
     * 权限验证
     *
     * @param accessIds
     * @return
     */
    Boolean checkAccessId(List<Integer> accessIds);

    /**
     * 按角色获取权限列表
     *
     * @param roleName
     * @return
     */
    List<Integer> getAccessListByRoleId(String roleName);
}
